home *** CD-ROM | disk | FTP | other *** search
/ Aminet 41 / Aminet 41 (2001)(Schatztruhe)[!][Feb 2001].iso / Aminet / util / libs / MMULib.lha / MMULib / MMULib.readme < prev    next >
Encoding:
Text File  |  2000-12-04  |  16.2 KB  |  338 lines

  1. Short:    Library to ctrl the MC68K MMUs
  2. Uploader: thor@math.tu-berlin.de (Thomas Richter)
  3. Author:   thor@math.tu-berlin.de (Thomas Richter)
  4. Type:     util/libs
  5. Requires: Os 2.04, a 68020/68851, 68030, 68040 or 68060 with a working MMU
  6. Version:  42.3
  7.  
  8. NOTE:    The developer information went now into the "MuManual" archive, this
  9.     is the "user only" distribution.
  10.  
  11. -----------------------------------------------------------------------------
  12.  
  13. Purpose and goal of this library:
  14.  
  15. The mmu.library is a basis for MMU (memory management) related functions the 
  16. MC68K family can perform. Up to now certain hacks are available that program 
  17. the MMU themselves (Enforcer,CyberGuard,GuardianAngle,SetCPU,Shapeshifter,
  18. VMM,GigaMem...). 
  19. It's therefore not unexpected that these tools conflict with each other.
  20. There's up to now no Os support for the MMU at all - the gap this mmu.library
  21. fills.
  22.  
  23. The goal is to provide a basis of functions to address and program the MMU in
  24. a hardware independent, Os friendly fashion. Hence, the new version of the
  25. Enforcer, called MuForce, will work together with virtual memory, and others.
  26.  
  27. The mmu.library is also the basis for a virtual memory project, the 
  28. memory.library. Even though the mmu.library does not provide virtual memory
  29. itself, it builds the basics to allow an easy implementation and to avoid the
  30. hacks required by other implementations so far.
  31.  
  32. ------------------------------------------------------------------------------
  33.  
  34. Changes since V42.2
  35. ---------------------
  36.  
  37.     - Included an alpha release of a new 68060.library which provides a
  38.       fpsp.resource and is virtual memory aware. This alpha release can
  39.       be found in the LIBS/alpha directory.
  40.       Thanks goes to Stephen Brookes and Etienne Vogt for performing
  41.       some tests. Note though that I do not own a 68060 and could not
  42.       test this library for correctness.
  43.  
  44.     - Included a MMU driven ShapeShifter video driver, MuEVD. (new)
  45.     - MuGuardianAngel: Does no longer call RawIOInit() and hence will
  46.       no longer conflict with programs using the serial port even in
  47.       cases MuGuardianAngel never required the port in first place.
  48.     - MuForce: Does no longer call RawIOInit() but fully relies on the
  49.       Os and/or the user to initialize the serial port correctly, in the
  50.       same way the old Enforcer did. This means that MuForce will now
  51.       safely cooperate with software that requires the serial port in
  52.       cases MuForce output goes to the parallel port or other 
  53.       destinations.
  54.     - Note that there is now a new release of "BlizKick" which fixes 
  55.       the problems mentioned below.
  56.     - Updated the documentation, fixed a minor mistake in the MMU
  57.       developer's manual.
  58.     - Included an upgrade patch from SetPatch 44.13 to 44.14 which, once
  59.       again, opens the 680x0.library instead of the 68040.library.
  60.       The RamLibFix is then no longer required since it is included now
  61.       in SetPatch anyhow.
  62.     - MuGuardianAngel: The DUMPLIST routine had a bug and might have
  63.       allocated too less memory. Luckely, this had the only side effect
  64.       that not all of the mung list would have been dumped correctly, it
  65.       did not trash any memory.
  66.     - MuGuardianAngel: The DUMPLIST option now also makes use of the 
  67.       SegTracker to print segment/hunk information of the allocating
  68.       routine.
  69.     - Installation scripts: Due to a bug in the BuildMMUConfig.rexx
  70.       script, the on-board hardware of certain P5 boards has been disabled
  71.       completely. Urgl.
  72.     - mmu.library: Added a new command for the ENVARC:MMU-Configuration,
  73.       "FOR". It executes the command given as argument if the manufacturer
  74.       product code fits, possibly several times if more than one board is
  75.       in the machine.
  76.     - mmu.library: The MMU-Configuration file can now be put into DEVS: as
  77.       well since some people seem to have problems with the library and
  78.       HappyEnv.
  79.     - mmu.library: Added another new command "ClearMMU" which will re-run
  80.       the MMU setup procedure at least partially. The intention behind 
  81.       this is to override or ignore a previously loaded MMU tree at least
  82.       partially in places where it is sub-optimal or incorrect. This seems
  83.       to be required by some Apollo boards.
  84.     - mmu.library: EnterContext() and LeaveContext() are no longer running
  85.       into the risk of breaking a Forbid(), provided AllocMem() doesn't.
  86.       NOTE THAT I NEVER DOCUMENTED THIS FEATURE ANYHOW.
  87.       This might help for some critical applications where a launched task
  88.       must run in a new context.
  89.       Due to a feature of exec, you cannot enter a context before you
  90.       AddTask() a new task, sigh.
  91.     - mmu.library: Due to a trashed register, the library crashed upon
  92.       detection of an 68040 or 68060 with a disabled or otherwise non-
  93.       functional MMU. Note that it would have detected the EC processors
  94.       correctly, though, including the 68EC030. This release should do 
  95.       better. Thanks to Pavel for detecting this.
  96.     - Fixes: Added a fix to repair the UMult64()/SMult64() bug of the Os
  97.       for the 68000 and 68010 processors. Not required for the up-to-date
  98.       release of SetPatch, but otherwise recommended.
  99.     - mmu.library: AddConfigDev() is now supported, but the implementation
  100.       depends on some internals of the expansion.library. Hopefully, 
  101.       nobody will change them. The MuLib tries to check whether the ROM
  102.       function is still installed. In case it is, the code will jump into
  103.       the old ROM code. In case it isn't, a replacement routine is used.
  104.     - 680x0.libraries: AddConfigDev() is now passed thru, presumably to the
  105.       mmu.library function.
  106.     - Installation: Finally, wrote a (rather complicated) installation
  107.       script for automated installation.
  108.     - Included various fixes for the BVisionPPC driver and more "software
  109.       fluff" for the installation process.
  110.     - 68040.library: Impoved the GetMsg() workaround for programs that
  111.       call GetMsg() in a tight loop.
  112.     - 68040.library: Fixes now a bug in the mathieeesingbas.library 
  113.       which doesn't use a FPU since it is setup before this library is
  114.       setup.
  115.  
  116. Changes since V42.1
  117. ---------------------
  118.     
  119.     - The 42.1 release automatically marked all hardware pages as
  120.       cacheinhibited serialized. Looks like even that was too much for
  121.       some hardware boards, I don't know why. This should be the proper
  122.       default anyhow. I disabled this again, even though this means,
  123.       as for 42.0 and before, that a MMU-Configuration is *mandatory*
  124.       if you use the library as "stand-alone" instead on top of a third-
  125.       party 68040/68060 library.
  126.  
  127. Changes since V42.0:
  128. ---------------------
  129.  
  130.     - Installation: P5Init, PPCIdentify, P5Identify reworked again, it
  131.       enables now explicitly the bus error generation of the A4000
  132.       motherboard resources.
  133.     - Installation Rexx scripts: Added a "NoP5" keyword to disable ex-
  134.       plicitly the P5 identification steps which seem to be problematic
  135.       for some boards for reasons that are beyond me.
  136.     - MuManual: Fixed some typos, corrected some mistakes, clarified some
  137.       formulations. Thanks to Etienne Voigt for proofreading!
  138.     - Organization: The "MMULib" archive is now the user archive, all
  139.       developer information went into the "MuManual" archive, including
  140.       the autodocs, the includes, the bmaps and some example sources.
  141.       This will help to keep the archive short.
  142.     - mmulib: The CurrentContext() function forgot to Forbid() properly.
  143.       Note that you still need a Forbid() bracketing or the result code
  144.       might be pretty useless. The propability that this broke code is
  145.       very low, though.
  146.     - mmulib: GetMappingProperties() was simply broken in V42.0 and below.
  147.       Sorry, this got fixed. This function hasn't been used yet, so this
  148.       bug was left unnoticed.
  149.     - Included a debug version of the library in the MuManual archive.
  150.     - BlizKick: In order to avoid a yellow alert, either BlizKick must be
  151.       modified or must be run behind SetPatch. The reason for the alert
  152.       is that BlizKick opens the mmu.library before the 68060/68040 lib
  153.       is open, which is and never has been legal. I just added an explicit
  154.       check for this condition in V42 because too many people ignored it.
  155.       As I said, "no discussion". This is a side effect of how the library
  156.       works and has to work.
  157.  
  158.  
  159. Changes since V41.xx:
  160. ---------------------
  161.  
  162.     - mmu.library: Added more error checking for the startup code, esp.
  163.       the MMU-Configuration file. Added a check for proper config-
  164.       uration, i.e. whether the library was (incorrectly) loaded in
  165.       front of SetPatch.
  166.     - Added a new function: RunOldConfig(). It runs a small supervisor
  167.       routine with the boot MMU configuration.
  168.     - 68040.library: Added an explicit check for correct configuration,
  169.       it will generate a requester in case no 68040 is available.
  170.     - MuGuardianAngel: Fixed a bug in the mung-wall check which could 
  171.       have reported one additional mung-wall damage in case the front 
  172.       wall was found defective. Added a workaround for a possible 
  173.       68060 firmware bug, the "U" bit is now always set in the MMU
  174.       descriptors to avoid unnecessary MMU writebacks.
  175.     - In case you see MuGuardianAngel hits of the z3scsi.device, run
  176.       the FixCybAccess program. It will work around the z3scsi.device 
  177.       hits as well. Thanks, Helmut.
  178.     - MuMove4K PREPAREEMUL moves now the low chip memory end to the
  179.       16K line, not to the 8K line. This might fix some Fusion
  180.       problems. Thanks, Pavel.
  181.     - Improved the error messages of MuFastZero a little bit.
  182.     - Reworked P5Identify and PPCIdentify to make these two more
  183.       stable.
  184.     - Added another external MMU setup command, P5Init. It should 
  185.       keep care about all P5 specific cache settings and should
  186.       setup the PPC and the BOOT-MMU-Port automatically. All manual
  187.       P5 specific entries in the MMU-Configuration except graphic 
  188.       board cachings are obsolete now and should be replaced by
  189.       P5Init.
  190.     - Rewrote both setup scripts to reflect the changes in the P5
  191.       setup logic, i.e. ScanMMUPort has been replaced by P5Init and
  192.       all P5 specific cache settings have been removed.
  193.     - Added stack increasement patches for the mfm.device (CrossDos)
  194.       and IPrefs 40.7 in case you do not yet use Os 3.5. Thanks Gene.
  195.     - Added a fix for two bugs in ramlib. First, its stack is too
  196.       low. Second, it uses SIGF_SINGLE as message bit for its process
  197.       port which could cause some race conditions with semaphores in
  198.       library setup code.
  199.     - The MuGuardianAngel patch report and automatic IRQ check have 
  200.       been reworked a bit. The "patches overwritten" message is now
  201.       no longer periodically generated, but will be suspended up to
  202.       the next "real" hit where another message will be generated.
  203.     - The MuGuardianAngel automatic IRQ stack was not only useless,
  204.       but in fact broken. This does not go for the stack check of the
  205.       exec memory handling functions which was and still is fine.
  206.       Good enough it was recommended to leave the IRQ check disabled. 
  207.       "Nearly out of stack" warnings were not generated by the IRQ code 
  208.       at all, and the stack overflow and stack underflow messages
  209.       usually report "bogus" hits due to its construction. Stack 
  210.       snooping is now by default ENABLED, except for "out of bounds"
  211.       reports, which still requires STACKSNOOP option explicitly.
  212.       Added an option to adjust the minimal stack size for the
  213.       "Nearly out of stack" reports, but it can be made only larger,
  214.       i.e. more "picky".
  215.     - mmu.library: The pre-42 releases only marked the zero page as
  216.       non-blank which might have caused problems for some Mac emu-
  217.       lators. It now marks the lowest 32K as valid. Former versions
  218.       set it to "cacheinhibit", it is now set to "cacheinhibit nonser-
  219.       ialized imprecise".
  220.     - mmu.library: The low-memory limit up to which the mmu.library
  221.       has to software-emulate accesses has been made adjustable.
  222.     - mmu.library: Due to a bug in the high-level mapping list manage-
  223.       ment, MAPP_INDIRECT did not work correctly.
  224.     - mmu.library: BuildIndirect() performs now a few more consistency
  225.       checks and is less restrictive for MAPP_INVALID and MAPP_SWAPPED.
  226.     - Updated the DMAInitiate() function, it provides now a return code
  227.       instead going guru if it doesn't like the parameters.
  228.     - Updated MuOmniSCSIPatch to reflect the changes made to 
  229.       DMAInitiate().
  230.     - Fixed many documentation errors in mmu.doc, updated and checked
  231.       exception.doc again.
  232.     - Included a demo program for indirect descriptor handling.
  233.     - Speedup SetIndirect() somewhat by placing this routine directly
  234.       in the MMU drivers as a "native" operation.
  235.     - Added a new LVO "SetIndirectArray()" to set more than one
  236.       indirect descriptor at once. Should be *very* fast.
  237.     - The startup command "DescriptorCacheInhibit" did not pass a proper
  238.       result code on success and hence caused a yellow alert. This bug
  239.       was only noticable in some of the V42 betas where proper result
  240.       code checking was introduced.
  241.     - mmu.library: WithoutMMU() disables now the CPU caches as well to
  242.       allow a safe access to non-cacheable addresses.
  243.     - MuFastZero: In case MuFastZero is removed (why?) the unmapped chip
  244.       memory is set to IMPRECISE and NONSERIALIZED to provide at least
  245.       a minimal speedup.
  246.     - Added "AmigaGuide" versions of the autodocs.
  247.     - Included a new version of BPPCFix by Frank Wille. Thanks, Frank!
  248.       Using this program will allow you to replace the ROM-based
  249.       libraries of the Blizzard-Boards.
  250.       Thanks Stephen for working this out, and for making this trick
  251.       possible!
  252.     - Included a "RKRM" style manual and tutorial for the MuLib in "dvi"
  253.       and "postscript" format.
  254.  
  255. ------------------------------------------------------------------------------
  256.  
  257.                          The THOR-Software Licence (v2, 24th June 1998)
  258.  
  259.  
  260. This License applies to the computer programs known as the "mmu.library" 
  261. and its sources. The "Program", below, refers to such program. The
  262. "Archive" refers to the package of distribution, as prepared by the author
  263. of the Program, Thomas Richter. Each licensee is addressed as "you".
  264.  
  265.  
  266.  
  267. The Program and the data in the archive are freely distributable
  268. under the restrictions stated below, but are also Copyright (c)
  269. Thomas Richter.
  270.  
  271. Distribution of the Program, the Archive and the data in the Archive by a
  272. commercial organization without written permission from the author to any
  273. third party is prohibited if any payment is made in connection with such
  274. distribution, whether directly (as in payment for a copy of the Program) or
  275. indirectly (as in payment for some service related to the Program, or
  276. payment for some product or service that includes a copy of the Program
  277. "without charge"; these are only examples, and not an exhaustive enumeration
  278. of prohibited activities).
  279.  
  280.  
  281. However, the following methods of distribution
  282. involving payment shall not in and of themselves be a violation of this
  283. restriction:
  284.  
  285.  
  286. (i) Posting the Program on a public access information storage and
  287. retrieval service for which a fee is received for retrieving information
  288. (such as an on-line service), provided that the fee is not
  289. content-dependent (i.e., the fee would be the same for retrieving the same
  290. volume of information consisting of random data).
  291.  
  292.  
  293. (ii) Distributing the Program on a CD-ROM, provided that
  294.  
  295. a) the Archive is reproduced entirely and verbatim on such CD-ROM, including
  296. especially this licence agreement;
  297.  
  298. b) the CD-ROM is made available to the public for a nominal fee only,
  299.  
  300. c) a copy of the CD is made available to the author for free except for
  301. shipment costs, and
  302.  
  303. d) provided further that all information on such CD-ROM is redistributable
  304. for non-commercial purposes without charge.
  305.  
  306.  
  307. Redistribution of a modified version of the Archive, the Program or the
  308. contents of the Archive is prohibited in any way, by any organization,
  309. regardless whether commercial or non-commercial. Everything must be kept
  310. together, in original and unmodified form.
  311.  
  312.  
  313.  
  314.  
  315. Limitations.
  316.  
  317.  
  318. THE PROGRAM IS PROVIDED TO YOU "AS IS", WITHOUT WARRANTY. THERE IS NO
  319. WARRANTY FOR THE PROGRAM, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
  320. LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
  321. PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE ENTIRE
  322. RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD
  323. THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
  324. SERVICING, REPAIR OR CORRECTION.
  325.  
  326.  
  327. IF YOU DO NOT ACCEPT THIS LICENCE, YOU MUST DELETE THE PROGRAM, THE ARCHIVE
  328. AND ALL DATA OF THIS ARCHIVE FROM YOUR STORAGE SYSTEM. YOU ACCEPT THIS
  329. LICENCE BY USING OR REDISTRIBUTING THE PROGRAM.
  330.  
  331.  
  332.                                                         Thomas Richter
  333.  
  334. -----------------------------------------------------------------------------
  335.  
  336. So long,
  337.     Thomas            (December 2000)
  338.